#!/usr/local/bin/php
<?php
// 3文字ドメイン名生成登録ツール

date_default_timezone_set('Asia/Tokyo');

$ini = parse_ini_file("whois.ini");
$dsn = "mysql:dbname={$ini['db']};host={$ini['host']}";
$user = $ini['user'];
$password = $ini['pass'];
try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    die ('Connection failed: ' . $e->getMessage());
}
function dbins($domain, $tld) {
    global $dbh;

    $sql = "INSERT INTO whois3 (domain, tld, modified) VALUES (?, ?, SUBDATE(NOW(), INTERVAL 1 MONTH))";
    $sth = $dbh->prepare($sql);
    $sth->execute(array($domain, $tld));
}

//$str = "adgjmptw0";   // ワンクリック文字
$str = "abcdefghijklmnopqrstuvwxyz1234567890-";  // 英数字 & -
$tld_array = array("com", "net", "info", "org", "biz");
$arr = str_split($str);
$allcnt = 0;
function mul($a, $n) {
    global $allcnt;
    global $arr;
    global $tld;
    if (!isset($tld) || $tld == "") {
        return;
    }
    if (strncmp($a, '-', 1) == 0) { // ドメイン名の始めに「-」は使えない。
        return;
    }
    foreach ($arr as $xb) {
        if ($allcnt % 100 == 0) {
            usleep(300000);         // 0.3秒
        }
        $domain = $a . $xb;
        if ($n <= 1) {
            if (strcmp(substr($domain, -1), '-') != 0) {    // ドメイン名の終わりに「-」は使えない。
                dbins($domain, $tld);
                $allcnt++;
            }
        } else {
            mul($domain, $n-1);
        }
    }
}

foreach ($tld_array as $tld) {
    mul("", 3);
}

?>
